Recently, micro-computers (defined herein as computers having word length capabilities of 16 bits or less) have flooded the home and small business market. Accompanying this surge in micro-computer sales is a corresponding demand for "user friendly" software. The ultimate goal of programmers creating the software for this personal computer market is the design of programs for the unskilled operator which that operator will be able to modify to fulfill his special needs.
Previously, the art of creating computer programs through which information could be stored and retrieved required the skill of at least one experienced programmer capable of employing a high-level machine language such as COBOL or FORTRAN. The programmer, relying on all of his skill and expertise and with the expenditure of great amounts of time was able to create a computer program tailored to satisfy one specific need. Any deviation from the initial program necessitated a complete redraft of the program.
More particularly, heretofore the person defining the program parameters first disseminated those parameters to the actual programmer who, in turn, conveyed those parameters and all accompanying documents to a systems analyst who was responsible for the design of the program. Designing a program, is a complicated process involving the use of flowcharts, parameter lists, CRT design forms, print-out design forms and the formatting of actual data base records. Also, the systems analyst was responsible for the type of data base used in the system and designed the support programs required to maintain that data base.
Having decided upon the parameters and having selected the support programs for the data base, the systems analyst then turned the design documents over to the programmer who converted these documents into the program statements which allow the computer to do the desired work. The conversion to program statements not only involve one or more complicated computer languages, but also requires exhaustive and time consuming testing and "debugging." The more complex the program becomes, the more difficult it is to eliminate inherent flaws. In fact, today's programmer spends 70% of his time reworking old programs to enable them to handle new requirements or make them work with new equipment. Thus, a big backlog of "to-be-developed" programs results.
While it is possible that the program design process could be handled by the programmer alone, it is almost always requires the cooperation of two people: the person with the need and the programmer. Often the design process involves more people. Of course, the more people involved: (1) the greater the possibility of deviating from the original request becomes; and (2) the longer the time period between the initial request and the actual creation of the program.
The need to streamline and simplify the programming process is apparent. One solution is called an "application generator." This is a standard program module, or program unit, that can be used when putting together the software, or instructions, for a complex business computer systems. In order to minimize creation time and reduce errors, the computer is allowed to create a portion of the menial and more complicated program. In fact, on the very large and sophisticated main frame computer systems using application generators, such as MARK V, exceptionally gifted programmers have created working programs in a few days. However, these programming techniques are limited to the large computers, are available only to programmers, and cost large sums of money (in the vicinity of $100,000).
As a result, the person needing the programming must be able to justify the cost involved. And in small businesses, the cost can seldom be economically justified. Most programming requests, even for a small business and on small computer systems, require large sums of money, time and manpower.
In contrast to the foregoing, the invention described herein allows a person to relate his needs directly to the computer. With information supplied by the person orginating the request, the computer creates the final computer program directly. The program creation time involves only moments, and the computer creates a more complete and sophisticated program than the heretofore conventionally created programs. Possibly most important, the person can obtain programs that, although very helpful, would have been too expensive to justify creating if it was necessary to follow the conventional creation process routine. The entire interaction between the operator and computer is handled visually and in free form mode (a mode that places few limitations on the programmer, i.e., is very unstructured), permitting the unskilled operator, a person with very little, if any, previous computer related experience to satisfy his needs within minutes.